package com.xhh.nphm.system.service;

import com.xhh.nphm.common.core.domain.QueryConditionVo;
import com.xhh.nphm.common.core.domain.entity.SysUser;
import com.xhh.nphm.system.domain.MailExcel;
import com.xhh.nphm.system.domain.MmailWorkForm;
import com.baomidou.mybatisplus.extension.service.IService;
import org.apache.ibatis.annotations.Param;

import java.util.List;
import java.util.Map;

/**
 * 信件工单业务接口
* @author Administrator
* @description 针对表【mMailWorkForm】的数据库操作Service
* @createDate 2022-06-07 15:41:25
*/
public interface MmailWorkFormService extends IService<MmailWorkForm> {
    /**
     * 待派-信件工单列表数据
     * @param mmailWorkForm 查询条件
     * @return 列表数据
     */
    List<Map<String, Object>> wfDraftListJson(MmailWorkForm mmailWorkForm);


    /**
     * 待回访信件工单 列表数据
     *
     * @param userNo
     * @param mmailWorkForm
     * @return
     */
    List<MmailWorkForm> backWaitListJson(String userNo, MmailWorkForm mmailWorkForm);

    /**
     * 随即获取 n条  待回访信件工单
     * @param num
     * @return
     */
    List<MmailWorkForm> getBackWaitList(Integer num);

    /**
     * 未获取待回访信件工单总数
     * @return
     */
    Integer countBackWaitList();


    /**
     * 已回访信件工单 列表数据
     * @param mmailWorkForm
     * @return
     */
    List<MmailWorkForm> backOverListJson(MmailWorkForm mmailWorkForm);

    /**
     * 待派-信件工单（信件受理目录下）列表数据
     *
     * @param sysUser 当前用户对象
     * @param mmailWorkForm 查询条件
     * @return 列表数据
     */
    List<Map<String, Object>> wfDraftListWllzJson(SysUser sysUser, MmailWorkForm mmailWorkForm);

    /**
     * 信件工单未回复列表数据
     * @param mailWorkForm 查询条件
     * @param deptId 部门编号
     * @return 列表数据
     */
    List<Map> mailWFNotReplyAllWllzJson(MmailWorkForm mailWorkForm, String deptId);

    /**
     * 信件工单已回复列表数据
     * @param mailWorkForm 查询条件
     * @param deptId 部门编号
     * @return 列表数据
     */
    List<Map> mailWFRepliedAllWllzJson(MmailWorkForm mailWorkForm, String deptId);

    /**
     * 查询已删除信件工单
     * @param pkId
     * @return
     */
    MmailWorkForm getByPkId(Integer pkId);

    MmailWorkForm getByWorkFormNO(String workNo);

    /**
     * (网络理政区县）查询本级网络理政件
     * @param sbDeptId 本级部门
     * @param queryConditionVo 参数
     * @return
     */
    List<Map<String, Object>> netMailWFListJson(String sbDeptId, QueryConditionVo queryConditionVo);

    /**
     * (网络理政区县）查询本单位信件工单导出
     * @param sbDeptId 本级部门
     * @param queryConditionVo 参数
     * @return
     */
    List<MailExcel> netMailWFListExport(String sbDeptId, QueryConditionVo queryConditionVo);
}
